UC track_index;
} GPS_OLap_Data, *GPS_PLap_Data;
-
+typedef int (*pcb_fn) (int, struct GPS_SWay **);
#include "gpsdevice.h"
#include "gpssend.h"
**
** @return [int32] number of track entries
************************************************************************/
-int32 GPS_A300_Get(const char *port, GPS_PTrack **trk)
+int32 GPS_A300_Get(const char *port, GPS_PTrack **trk, pcb_fn cb)
{
static UC data[2];
gpsdevh *fd;
**
** @return [int32] number of track entries
************************************************************************/
-int32 GPS_A301_Get(const char *port, GPS_PTrack **trk)
+int32 GPS_A301_Get(const char *port, GPS_PTrack **trk, pcb_fn cb)
{
static UC data[2];
gpsdevh *fd;
GPS_PPacket rec;
int32 n;
int32 i;
+ int ntrkpts;
if(gps_trk_transfer == -1)
return GPS_UNSUPPORTED;
GPS_Error("A301_GET: Unknown track protocol");
return PROTOCOL_ERROR;
}
+ /* Cheat and don't _really_ pass the trkpt back */
+ cb(n, NULL);
}
if(!GPS_Packet_Read(fd, &rec))
int32 GPS_A200_Send(const char *port, GPS_PWay *way, int32 n);
int32 GPS_A201_Send(const char *port, GPS_PWay *way, int32 n);
-int32 GPS_A300_Get(const char *port, GPS_PTrack **trk);
-int32 GPS_A301_Get(const char *port, GPS_PTrack **trk);
+int32 GPS_A300_Get(const char *port, GPS_PTrack **trk, pcb_fn cb);
+int32 GPS_A301_Get(const char *port, GPS_PTrack **trk, pcb_fn cb);
int32 GPS_A300_Send(const char *port, GPS_PTrack *trk, int32 n);
int32 GPS_A301_Send(const char *port, GPS_PTrack *trk, int32 n);
** @return [int32] number of waypoint entries
************************************************************************/
-int32 GPS_Command_Get_Waypoint(const char *port, GPS_PWay **way, int (*cb)(int, struct GPS_SWay **))
+int32 GPS_Command_Get_Waypoint(const char *port, GPS_PWay **way, pcb_fn cb)
{
int32 ret=0;
** @return [int32] number of track entries
************************************************************************/
-int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk)
+int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk, pcb_fn cb)
{
int32 ret=0;
switch(gps_trk_transfer)
{
case pA300:
- ret = GPS_A300_Get(port,trk);
+ ret = GPS_A300_Get(port,trk,cb);
break;
case pA301:
case pA302:
- ret = GPS_A301_Get(port,trk);
+ ret = GPS_A301_Get(port,trk,cb);
break;
default:
GPS_Error("Get_Track: Unknown track protocol %d\n", gps_trk_transfer);
int32 GPS_Command_Get_Almanac(const char *port, GPS_PAlmanac **alm);
int32 GPS_Command_Send_Almanac(const char *port, GPS_PAlmanac *alm, int32 n);
-int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk);
+int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk, int (*cb)(int, struct GPS_SWay **));
int32 GPS_Command_Send_Track(const char *port, GPS_PTrack *trk, int32 n);
int32 GPS_Command_Get_Waypoint(const char *port, GPS_PWay **way,int (*cb)(int, struct GPS_SWay **));